home *** CD-ROM | disk | FTP | other *** search
/ ASME's Mechanical Engine…ing Toolkit 1997 December / ASME's Mechanical Engineering Toolkit 1997 December.iso / ai / prlg195b.lzh / EXPERT.LZH / PRODSYS / RULESPD.PRO < prev   
Text File  |  1980-01-01  |  2KB  |  72 lines

  1.  /*                      RULESPD.PRO
  2.              by Xavier Salazar. May 29th, 1987
  3. */
  4. menu:-  cls,nl,
  5.     print('\n\t\t\tRULESPD.PRO'),print('\n\t\t\t-----------'),
  6.     title(R),datum(S),
  7.     print('\n\n\t\t\tBASE: ',R,'\t\tDATA: ',S),
  8.     print('\n\n\t\tc. Charge a file,'),
  9.     print('\n\t\tr. Result from facts,'),
  10.         print('\n\t\tf. Facts for a given result,'),
  11.     print('\n\t\td. Data (WARNING!: be sure BASE has data:- routine),'),
  12.     print('\n\t\te. Erase introduced data,'),
  13.     print('\n\t\tl. List objects,'),
  14.         print('\n\t\ti. Interchange BASE,'),
  15.     print('\n\t\tx. eXit program,'),
  16.     print('\n\t\ts. Exit system.'),
  17.     print('\n\n\t\t\t\tWhich '),ratom(X),o(X).
  18.  
  19.  o(c):- file_in,menu.
  20.  o(l):- listing(obj),listing(es),listing(datum),print('\n\t\t\t RET'),ratom(_),
  21.     menu.
  22.  o(r):- case(X),retract(case(X)),asserta(case(n)),track.
  23.  o(f):- case(X),retract(case(X)),asserta(case(y)),trail.
  24.  o(e):- retract(datum(_)),fail.
  25.  o(e):- asserta(datum(no)),menu.
  26.  o(d):- data,menu.
  27.  o(i):- title(Z),forget(Z),retract(title(Z)),asserta(title(no_file)), 
  28.       file_in,menu.
  29.  o(x):- halt.
  30.  o(s):- exitsys.
  31.  
  32. title(no_file).
  33. case(n).
  34. datum(no).
  35.  
  36. file_in:- print('\nTitulo: '),ratom(Tit),
  37.     title(S),retract(title(S)),asserta(title(Tit)),
  38.     consult(Tit).
  39.  
  40. indata:- print('Must be the data subroutine in the base\n'),!,data.
  41. indata:- print('There is not subroutine data:-   RET'),ratom(_),menu.
  42.  
  43. track:-cls,obj(X),!,print('RESULTS: ',X),print('\n\n\t\tRET'),
  44.     ratom(_),erase,menu.
  45. track:- print('\nNOT DEFINED...'),
  46.     print('\n\n\tRET'),ratom(_),erase,menu.
  47.  
  48. trail:- cls,print('Result designation '),ratom(X),obj(X),listing(asserted),
  49.     listing(denied),print('\n\n\t\tRET'),ratom(_),erase,menu.
  50. trail:- print('\nNOT DEFINED...'),print('\n\n\tRET'),
  51.     ratom(_),erase,menu.
  52.  
  53. affirm(X):- asserted(X),!.
  54. affirm(X):- case(Y),Y='y',!,not(denied(X)),record(X,yes).
  55. affirm(X):- case(Y),Y='n',!,not(denied(X)),question(X).
  56. deny(X):- case(Y),Y='y',denied(X).
  57. deny(X):- case(Y),Y='n',denied(X),!.
  58. deny(X):- case(Y),Y='y',!,not(asserted(X)),record(X,no).
  59. deny(X):- case(Y),Y='n',!,not(asserted(X)),question(X).
  60.      
  61. question(X):- print(X,' ? '), ratom(Answer), record(X,Answer).
  62.  
  63. record(X,yes):- asserta(asserted(X)).
  64. record(X,no):- asserta(denied(X)), fail.
  65.         
  66. erase:- retract(asserted(_)),fail.
  67. erase:- retract(denied(_)),fail.
  68. erase:- menu.
  69.  
  70. ?-menu.
  71.  
  72.